package com.zjj.lbw.interview.greedy;

/**
 * @author zhanglei.zjj
 * @description 最长连续递增序列-贪心算法
 * 给定一个未经排序的整数数组，找到最长且连续递增的子序列，并返回该序列的长度。
 * 序列的下标是连续的
 * @date 2023/9/2 23:19
 */
public class MaxSeq {
    public static int findLength(int[] nums) {
        if (nums == null) {
            return 0;
        }
        if (nums.length < 2) {
            return 1;
        }
        // 贪心算法，每次只考虑局部最优。不考虑全局，然后慢慢局部最优逼近到全局最优
        int start = 0;
        int max = 0;
        for (int i = 1; i < nums.length; i++) {
            // 如果当前元素小于等于前一个元素，说明递增中断，需要重置连续递增序列开始索引
            if (nums[i] <= nums[i - 1]) {
                start = i;
            } else {
                max = Math.max(i - start + 1, max);
            }
        }
         return max;
    }


    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 2, 3, 4, 3, 4, 5, 6, 7};
        System.out.println(findLength(arr));
    }
}
